import axios,{ InternalAxiosRequestConfig, AxiosResponse } from "axios";
import { useCommonStore } from "../store";

/**
 * @author zunqiang.Yi
 * @time 2023-10-21 14:40 PM
 * @description 请求拦截方法和封装一个完整的发送请求方法
 * */ 
// console.log(import.meta.env)
/** 因为图片的服务器和请求服务器一个地址，那么可以把这个地址做成一个全局变量 */
window.baseURL = import.meta.env.MODE === "development" ? '/apis' : 'http://www.yszhsc.com:15666';

const Ajax = axios.create({
    // baseURL: '/apis' // 代理只能在开发的时候使用
    // baseURL: '/http://www.yszhsc.com:15666'
    baseURL: window.baseURL
})
/** 请求拦截方法 */
Ajax.interceptors.request.use(function(config:InternalAxiosRequestConfig){
    config.headers.token = useCommonStore().token
    return config
})

/** 完整的发送请求的方法 */
export default function request(req:WanKeRequest) :Promise<any>{
    return new Promise(reslove=>{
        Ajax.request({
            method:req.method || 'GET',
            url:req.url,
            params:req.params || {},
            data:req.data || {}
        }).then(function({data}:AxiosResponse){
            reslove(data)
        }).catch(function(e:any){
            reslove(e)
        })
    })
}
 